package com.example.canteen.service.impl;
import com.example.canteen.domain.User;
import com.example.canteen.mapper.UserMapper;
import com.example.canteen.service.UserService;
import com.example.canteen.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    public List<User> selectAll(){
        return userMapper.getAll();
    }
    public User selectById(int userid){
        return userMapper.selectById((int) userid);
    }
    public User selectByName(String username){
        return userMapper.selectByName(username);
    }
    @Override
    public int insertUser(User user) {
        //注意这里没写太全，大家可以自行完善，完善点的可以是
        //1 先保证用户名不存在，防止重名出现
        //2 给password字段做加密存储，简单的就是用md5
        //3 注意如果这里加密了，在下面的登录方法里一样需要加密，否则数据库验证永远失败
        return userMapper.insertUser(user);
    }
    public int updateUser(User user) {
        //这个方法可以扩展，如果你把它认为成管理员修改密码那这个方法目前没有问题
        //但是如果是用户自己想修改密码呢，整个方法的参数就变了，需要有旧密码作为参数传递过来，先验证旧密码是否正确才能修改
        //如果忘了旧密码怎么办？ 通常还得有个重置密码的方法，那么在注册的时候，就可以加保密问题或者邮箱之类的，如果能够正确验证保密问题或者邮箱，才可以重置
        return userMapper.updateUser(user);
    }
    public int deleteUserById(int id) {
        return userMapper.deleteUserById(id);
    }
}